Enseignement des Modèles Linéaires, Machine Learning et Deep Learning

Le poste était situé à SupAgro, l'Institut Agro de Montpellier, de janvier 2025 à août 2025.

Les principaux défis étaient liés à l'enseignement et à la pédagogie en science des données pour les ingénieurs agronomes (niveau master). Les défis secondaires incluaient le renforcement des compétences du laboratoire dans les pratiques et méthodologies de deep learning, ainsi que la mise en place de solutions techniques pour faciliter la transition entre le langage R, largement utilisé dans la recherche statistique, et Python. Une application de ces méthodes sur des données de spectroscopie proche infrarouge (NIR) en 1-D était également prévue.

J'étais impliqué au sein du laboratoire MISTEA, dans le programme Data Manager UE3 à SupAgro.

Tâches & Objectifs

Mon rôle incluait plusieurs responsabilités : enseigner les statistiques, la régression linéaire et les statistiques spatiales aux étudiants manquant de prérequis pour suivre le cours général, créer des supports pédagogiques en science des données, particulièrement autour du deep learning, avec application sur des données de spectres NIR, et documenter, créer des packages et méthodes pour faciliter la transition entre R et Python.

L'objectif était de fournir les "mêmes outils" que ceux offerts par l'environnement R pour créer des ressources, et de simplifier la traduction, quand c'est possible, des ressources RMarkdown vers Jupyter Notebooks (génération HTML, PDF).

Les objectifs à atteindre étaient :

  • assurer les cours et le suivi pour les matières de régression linéaire et géospatiales en soutien
  • créer des supports pédagogiques (pratique de régression et classification) pour le deep learning
  • faire monter en compétences le laboratoire MISTEA sur l'utilisation de Python et de la programmation assistée par LLM moderne.

Les critères de succès étaient :

  • assurer les cours
  • produire des supports pédagogiques réutilisables
  • améliorer la compréhension et l'utilisation de Python au sein du laboratoire
  • illustrer comment l'utilisation des LLM peut aider les scientifiques à avancer plus rapidement, au moins sur la partie code.

Actions et Développement

J'ai assuré les cours et animé les deux matières pour lesquelles j'étais présent. J'ai créé deux Jupyter Notebooks détaillés appliqués aux données NIR, incluant l'organisation du code et les bonnes pratiques de développement. J'ai également créé une méthodologie et un package pour faciliter la transition de RMarkdown vers Jupyter Notebook (en Python).

Une partie de ce travail consistait en du code et une interface en ligne de commande (CLI) pour utiliser Jupyter Notebooks en .py (pas .ipynb), pour faciliter l'utilisation des LLM pour les tâches de traduction assistée. L'autre partie concernait la configuration et la personnalisation du CLI jupyter nbconvert pour générer des ressources.

Les étapes suivies incluaient la prise de contact avec plusieurs équipes de recherche locales spécialisées dans le sujet, l'implémentation des algorithmes de Machine Learning de niveau intermédiaire (PLS, Random Forest, et SVM), et le développement de modèles de deep learning avec PyTorch, allant du perceptron à des modèles plus complexes comme CNN (Convolutional Neural Networks). Ensuite, j'ai assuré les enseignements pendant un peu plus d'un mois. Actuellement, je finalise les supports pédagogiques et prépare la méthodologie et le package pour les présenter à la communauté scientifique du laboratoire lors de séminaires, avec un livrable.

J'ai travaillé sous la supervision pédagogique de Bénédicte Fontez et Philippe Vismara. Pour les statistiques, j'ai fourni du soutien pour Meili Baragatti. J'ai eu des échanges avec plusieurs laboratoires spécialisés dans les données NIR, incluant l'UMR AMAP de l'IRD (Institut de Recherche pour le Développement), et un laboratoire spécialisé dans l'utilisation de méthodes de deep learning sur ces données au CIRAD avec Gregory Beurier et Denis Cornet. J'ai également eu d'autres interactions internes sur le campus.

Les défis rencontrés incluaient le fait que, bien que proche de la science des données depuis de nombreuses années (participation à des groupes de recherche/travail et cours enseignés en apprentissage par renforcement à Epitech), je n'avais pas eu l'opportunité d'approfondir le sujet du deep learning sur des problèmes réels. Les cours de statistiques m'ont permis de revoir des connaissances que je n'avais pas activement utilisées depuis plusieurs années.

Pour le travail principal autour du deep learning, j'ai commencé avec une approche relativement naïve, en commençant par les algorithmes de Machine Learning standards sur les données NIR. J'ai ensuite essayé d'être aussi méthodique et impartial que possible, en plaçant les résultats des modèles sur les données au cœur des décisions. En 1D, il n'est pas du tout évident que les modèles de deep learning donnent des résultats significativement meilleurs que les algorithmes "traditionnels", sans parler de leur explicabilité.

Résultats

Les ressources pédagogiques fournies seront réutilisées l'année prochaine, et les interactions sur les plans pédagogique et scientifique ont été très positives. Il est un peu tôt pour vraiment mesurer l'impact pédagogique, car ce n'est que la deuxième année de ce cours de deep learning, et la première où je participe.

Cependant, nous pouvons remarquer l'influence de l'utilisation de l'IA générative pour le rendu de code, et comment les étudiants s'en emparent : ils peuvent se laisser complètement guider sans maîtrise, ce qui n'est pas bon, ou rapidement prendre les rênes pour prendre du recul sur le contenu scientifique.

Comme souvent dans l'enseignement, on reçoit autant, sinon plus, que ce qu'on donne. Ici, je suis extrêmement heureux d'avoir eu l'opportunité de pratiquer la science des données sur une mission de moyen terme. Cela m'a permis de gagner beaucoup de perspective et de pratique sur le deep learning, de rafraîchir et clarifier les concepts et algorithmes de statistiques, et de pratiquer l'utilisation des LLM dans le contexte de la science des données (par opposition au développement d'applications web, dans mon cas).

Au cours de ce travail, j'ai produit les ressources publiques suivantes :

Stack Technique

Le projet repose sur les outils et technologies suivants :

  • Deep Learning : PyTorch
  • Machine Learning : scikit-learn
  • Traitement de Données : NumPy, Pandas
  • Visualisation : Matplotlib, Seaborn
  • Environnement de Développement : Jupyter Notebooks

Il est important de noter que ces outils ont été choisis car ils représentent l'état de l'art pour le deep learning.